Quản lý nhân sự công ty bằng c# _ full source code
60.483 lượt xem;
- frmbangluong.cs
- QuanLyNhanSu /
- project /
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Text;
7 using System.Windows.Forms;
8 using System.Data.SqlClient;
9 using Telerik.Data;
10 using Telerik.WinControls.UI;
11 using QuanLyNhanSu.Class;
12 using Telerik.WinControls;
13
14 namespace QuanLyNhanSu
15 {
16 public partial class frmbangluong : RadForm
17 {
18 //khai báo biến toàn cục
19 clsdmpb cPhong = new clsdmpb();
20 clsDMTo cTo = new clsDMTo();
21 clsbangluong cluong = new clsbangluong();
22 clshieuqua chieuqua = new clshieuqua();
23 clsTiLeLuong cTLL = new clsTiLeLuong();
24 string thangkt = frmkiemtrabangluong.thangkt;
25 string namkt = frmkiemtrabangluong.namkt;
26
27 public frmbangluong()
28 {
29 InitializeComponent();
30 cboPhong.DataSource = cPhong.taocombo();
31 cboPhong.DisplayMember = "tbl_PhongBan.TenPhong";
32 cboPhong.ValueMember = "tbl_PhongBan.MaPhong";
33 lblthang.Text = "Bảng Lương Tháng " + thangkt + " năm " + namkt;
34 }
35 //Hiển thị thông tin nhân viên vào list nhân viên
36 private void HienThiListNV(DataTable dt, ListView lv)
37 {
38 foreach (DataRow row in dt.Rows)
39 {
40 ListViewItem item = new ListViewItem();
41 item.Text = row["MaNV"].ToString();
42 item.SubItems.Add(row["Ho"].ToString());
43 item.SubItems.Add(row["Ten"].ToString());
44 lv.Items.Add(item);
45 }
46
47 }
48 //set list
49 private void setlist(bool b)
50 {
51 lstNhanvien.Enabled = b;
52 cboPhong.Enabled = b;
53 cboTo.Enabled = b;
54 }
55 //hiển thị thông tin nhân viên
56 private void HienThiTTNV(string ma)
57 {
58 cluong.laydl(thangkt, namkt, ma);
59 txtmanv.Text = cluong.ds.Tables["bangluong"].Rows[0]["MaNV"].ToString();
60 txtluongcb.Text = cluong.ds.Tables["bangluong"].Rows[0]["LuongCoBan"].ToString();
61 txtphucapcv.Text = cluong.ds.Tables["bangluong"].Rows[0]["PhuCapCV"].ToString();
62 txtsongaycong.Text = cluong.ds.Tables["bangluong"].Rows[0]["SoNgayLV"].ToString();
63 txtsongayphep.Text = cluong.ds.Tables["bangluong"].Rows[0]["SoNgayNghiPhep"].ToString();
64 txtot1.Text = cluong.ds.Tables["bangluong"].Rows[0]["SogioTangCa"].ToString();
65 txtot2.Text = cluong.ds.Tables["bangluong"].Rows[0]["SoGioTangCaCN"].ToString();
66 txtngayngungviec.Text = cluong.ds.Tables["bangluong"].Rows[0]["SoNgayNghiNgungViec"].ToString();
67 txtpcsinhhoatcc.Text = cluong.ds.Tables["bangluong"].Rows[0]["PCSinhHoatCC"].ToString();
68 txtthuclanh.Text = cluong.ds.Tables["bangluong"].Rows[0]["ThucLanh"].ToString();
69 txtpckhac.Text = cluong.ds.Tables["bangluong"].Rows[0]["PhuCapKhac"].ToString();
70 txttileccvasinhhoat.Text = cluong.ds.Tables["bangluong"].Rows[0]["TiLeCCvaSinhHoat"].ToString();
71 txtluongngaycong.Text = cluong.ds.Tables["bangluong"].Rows[0]["LuongLamViec"].ToString();
72 txtluongtangca.Text = cluong.ds.Tables["bangluong"].Rows[0]["LuongTangCa"].ToString();
73 txtbhxhvabhyt.Text = cluong.ds.Tables["bangluong"].Rows[0]["BHXHvaBHYT"].ToString();
74 //cbophanloai.SelectedItem = cluong.ds.Tables["bangluong"].Rows[0]["MaHieuQua"].ToString();
75 cbophanloai.DataSource = cluong.ds;
76 cbophanloai.DisplayMember = "bangluong.mahieuqua";
77 cbophanloai.ValueMember = "bangluong.mahieuqua";
78 }
79 //set control trong grpchamcong
80 private void setgrpchamcong(bool b)
81 {
82 foreach (Control c in grpchamcong.Controls)
83 {
84 if (c.Name.Contains("txt") == true || c.Name.Contains("cbo") == true)
85 {
86 c.Enabled = b;
87 }
88 }
89 }
90 //set nut
91 private void setcmd(bool b)
92 {
93 cmdluu.Enabled = !b;
94 cmdchamcong.Enabled = b;
95 }
96 //taocombophanloai
97 private void taocombo()
98 {
99 cbophanloai.DataSource = chieuqua.taocombo();
100 cbophanloai.DisplayMember = "hieuqua.MaHieuQua";
101 cbophanloai.ValueMember = "hieuqua.MaHieuQua";
102 if (txtmanv.Text != "") cbophanloai.Text = cluong.ds.Tables["bangluong"].Rows[0]["MaHieuQua"].ToString();
103
104 }
105 //hiển thị dữ liệu lên datagirdview
106 private void HienThiTTGird(string thang, string nam, string maphong, string mato)
107 {
108 dgv_bangluong.DataSource = cluong.laydlgird(thang, nam, maphong, mato);
109 dgv_bangluong.DataMember = "bangluong";
110 }
111 //hiển thi dữ liệu lên datagirdview không có tổ
112 private void HienThiTTGird(string thang, string nam, string maphong)
113 {
114 dgv_bangluong.DataSource = cluong.laydlgird(thang, nam, maphong);
115 dgv_bangluong.DataMember = "bangluong";
116 this.dgv_bangluong.Columns[0].IsVisible = false;
117 this.dgv_bangluong.Columns[1].IsVisible = false;
118 this.dgv_bangluong.Columns[2].HeaderText = "Mã nhân viên";
119 this.dgv_bangluong.Columns[3].HeaderText = "Họ";
120 this.dgv_bangluong.Columns[4].HeaderText = "Tên";
121 this.dgv_bangluong.Columns[5].HeaderText = "Mã phòng";
122 this.dgv_bangluong.Columns[6].HeaderText = "Mã tỗ";
123 this.dgv_bangluong.Columns[5].IsVisible = false;
124 this.dgv_bangluong.Columns[6].IsVisible = false;
125 this.dgv_bangluong.Columns[7].HeaderText = "Lương cơ bản";
126 this.dgv_bangluong.Columns[8].HeaderText = "Mã hiệu quả";
127 this.dgv_bangluong.Columns[9].HeaderText = "Tỷ lệ hiệu quả";
128 this.dgv_bangluong.Columns[10].HeaderText = "Số ngày công";
129 this.dgv_bangluong.Columns[11].HeaderText = "Số giờ tăng ca";
130 this.dgv_bangluong.Columns[12].HeaderText = "Số giờ tăng ca CN";
131 this.dgv_bangluong.Columns[13].HeaderText = "Số ngày nghỉ phép";
132 this.dgv_bangluong.Columns[14].HeaderText = "Số ngày nghỉ ngưng việc";
133 this.dgv_bangluong.Columns[15].HeaderText = "Tỷ lệ chuyên cần";
134 this.dgv_bangluong.Columns[16].HeaderText = "Lưong làm việc";
135 this.dgv_bangluong.Columns[17].HeaderText = "Lương tăng ca";
136 this.dgv_bangluong.Columns[18].HeaderText = "BHXH & BHYT";
137 this.dgv_bangluong.Columns[19].HeaderText = "Phụ cấp chức vụ";
138 this.dgv_bangluong.Columns[20].HeaderText = "Phụ cấp sinh hoạt";
139 this.dgv_bangluong.Columns[21].HeaderText = "Phụ cấp khác";
140 this.dgv_bangluong.Columns[22].HeaderText = "Thực lãnh";
141
142 for (int i = 0; i < this.dgv_bangluong.Columns.Count;i++ )
143 {
144 this.dgv_bangluong.Columns[i].BestFit();
145 }
146 }
147 //làm rổng các textbox và combobox trong các group
148 private void lamrong()
149 {
150 foreach (Control c in grpttnv.Controls)
151 {
152 if (c.Name.Contains("txt") == true)
153 {
154 c.Text = "";
155 }
156 }
157 foreach (Control c in grpchamcong.Controls)
158 {
159 if (c.Name.Contains("txt") == true || c.Name.Contains("cbo") == true)
160 {
161 c.Text = "";
162 }
163 }
164 foreach (Control c in grpbangluong.Controls)
165 {
166 if (c.Name.Contains("txt") == true)
167 {
168 c.Text = "";
169 }
170 }
171
172
173 }
174
175 private void frmbangluong_Load(object sender, EventArgs e)
176 {
177
178 }
179
180 private void cboPhong_SelectedIndexChanged(object sender, EventArgs e)
181 {
182 //maphongin = cboPhong.SelectedValue.ToString();
183 txtngaycongchuan.Text = "";
184 txttileluong.Text = "";
185 //Hiển thị dữ liệu nhân viên vào list
186 lstNhanvien.Items.Clear();
187 HienThiListNV(cPhong.laydlList(cboPhong.SelectedValue.ToString(), thangkt, namkt), lstNhanvien);
188 //lấy dữ liệu vào gird
189 HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString());
190 //lấy dữ liệu ngày công chuẩn và tỉ lệ lương của phòng
191 try
192 {
193 cTLL.laydl(thangkt, namkt, cboPhong.SelectedValue.ToString(), "");
194 txtngaycongchuan.Text = cTLL.ds1.Tables["TiLeLuong"].Rows[0]["SoNgayCongThang"].ToString();
195 txttileluong.Text = cTLL.ds1.Tables["TiLeLuong"].Rows[0]["TiLeLuong"].ToString();
196 }
197 catch { }
198 //tạo combobox to
199 cboTo.DataSource = cTo.taocombo(cboPhong.SelectedValue.ToString());
200 cboTo.DisplayMember = "DanhMucTo.TenTo";
201 cboTo.ValueMember = "DanhMucTo.MaTo";
202 cboTo.Text = "";
203 //làm rổng các textbox
204 lamrong();
205
206 }
207
208 private void cboTo_SelectedIndexChanged(object sender, EventArgs e)
209 {
210
211 }
212
213 private void lstNhanvien_SelectedIndexChanged(object sender, EventArgs e)
214 {
215 string ma = lstNhanvien.FocusedItem.SubItems[0].Text;
216 string ho = lstNhanvien.FocusedItem.SubItems[1].Text;
217 string ten = lstNhanvien.FocusedItem.SubItems[2].Text;
218 txthoten.Text = ho + " " + ten;
219 HienThiTTNV(ma);
220 }
221 //
222 //bột nút của bảng lương
223 //
224 private void cmdchamcong_Click(object sender, EventArgs e)
225 {
226 if (txtmanv.Text == "")
227 {
228 MessageBox.Show("Bạn phải chọn nhân viên chấm công", "Thông Báo");
229 }
230 else
231 {
232 this.cmdtinhluong.Enabled = false;
233 setlist(false);
234 setgrpchamcong(true);
235 grpchamcong.Enabled = true;
236 setcmd(false);
237 taocombo();
238 cbophanloai.Focus();
239 }
240 }
241
242 private void cmdluu_Click(object sender, EventArgs e)
243 {
244 if (Int32.Parse(this.txtsongaycong.Text.Trim()) >= 0 &&
245 Int32.Parse(this.txtsongaycong.Text.Trim()) <= 31 &&
246 Int32.Parse(this.txtsongayphep.Text.Trim()) >= 0 &&
247 Int32.Parse(this.txtsongayphep.Text.Trim()) <= 31 &&
248 Int32.Parse(this.txtngayngungviec.Text.Trim()) >= 0 &&
249 Int32.Parse(this.txtngayngungviec.Text.Trim()) <= 31
250 )
251 {
252 cluong.chamcong(thangkt, namkt, txtmanv.Text.Trim(),
253 cbophanloai.SelectedValue.ToString(),
254 txtsongaycong.Text.Trim() != "" ? int.Parse(txtsongaycong.Text.Trim()) : 0,
255 txtot1.Text.Trim() != "" ? int.Parse(txtot1.Text.Trim()) : 0,
256 txtot2.Text.Trim() != "" ? int.Parse(txtot2.Text.Trim()) : 0,
257 txtsongayphep.Text.Trim() != "" ? int.Parse(txtsongayphep.Text.Trim()) : 0,
258 txtngayngungviec.Text.Trim() != "" ? int.Parse(txtngayngungviec.Text.Trim()) : 0,
259 txttileccvasinhhoat.Text.Trim() != "" ? double.Parse(txttileccvasinhhoat.Text.Trim()) : 0,
260 txtpckhac.Text.Trim() != "" ? int.Parse(txtpckhac.Text.Trim()) : 0);
261 setlist(true);
262 setgrpchamcong(false);
263 grpchamcong.Enabled = false;
264 setcmd(true);
265 HienThiTTNV(txtmanv.Text.Trim());
266 if (cboTo.Text != "")
267 {
268 //đưa dữ liệu vào datagirdview
269 HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString(), cboTo.SelectedValue.ToString());
270 this.cmdtinhluong.Enabled = true;
271 }
272 else
273 {
274 //đưa dữ liệu vào datagirdview
275 HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString());
276 this.cmdtinhluong.Enabled = true;
277 }
278 }
279 else
280 {
281 RadMessageBox.Show("\nThông tin ngày phải lớn hơn hoặc bằng 0 và và nhỏ hơn hoặc bằng 31 !\n","Thông báo",MessageBoxButtons.OK,RadMessageIcon.Exclamation);
282 }
283 }
284
285 private void cmdtinhluong_Click(object sender, EventArgs e)
286 {
287 if ((txtngaycongchuan.Text == "") || (txttileluong.Text == ""))
288 {
289 DialogResult rs = RadMessageBox.Show("\nBạn chưa nhập số ngày làm việc trong tháng và tỉ lệ lương.\nMở Form Tỉ lệ lương để nhập vào ?\n", "Thông báo", MessageBoxButtons.YesNo,RadMessageIcon.Question);
290 if (rs == DialogResult.Yes)
291 {
292 frmbangtileluong f = new frmbangtileluong();
293 f.MdiParent = this.MdiParent;
294 f.Show();
295 this.Close();
296 }
297 }
298
299 else
300 {
301 //kiểm tra chấm công hết chưa
302 bool bchamcong = false;
303 for (int i = 0; i < dgv_bangluong.Rows.Count - 1; i++)
304 {
305 //DataGridViewRow dgvrow = dgv_bangluong.Rows[i];
306 if (dgv_bangluong.Rows[i].Cells["mahieuqua"].Value.ToString() == "")
307 bchamcong = true;
308 }
309 if (bchamcong)
310 RadMessageBox.Show("\nChưa chấm công xong !\n", "Thông Báo");
311 else
312 //tính lương
313 {
314 for (int i = 0; i < dgv_bangluong.Rows.Count - 1; i++)
315 {
316 cluong.tinhluong(thangkt, namkt, dgv_bangluong.Rows[i].Cells["manv"].Value.ToString(),
317 int.Parse(dgv_bangluong.Rows[i].Cells["luongcoban"].Value.ToString()),
318 double.Parse(dgv_bangluong.Rows[i].Cells["tilehq"].Value.ToString()),
319 int.Parse(dgv_bangluong.Rows[i].Cells["songaylv"].Value.ToString()),
320 int.Parse(dgv_bangluong.Rows[i].Cells["sogiotangca"].Value.ToString()),
321 int.Parse(dgv_bangluong.Rows[i].Cells["sogiotangcacn"].Value.ToString()),
322 int.Parse(dgv_bangluong.Rows[i].Cells["songaynghiphep"].Value.ToString()),
323 int.Parse(dgv_bangluong.Rows[i].Cells["songaynghingungviec"].Value.ToString()),
324 double.Parse(dgv_bangluong.Rows[i].Cells["tileccvasinhhoat"].Value.ToString()),
325 int.Parse(dgv_bangluong.Rows[i].Cells["phucapcv"].Value.ToString()),
326 int.Parse(txtngaycongchuan.Text.Trim()),
327 TileTB(double.Parse(txttileluong.Text.Trim()),
328 dgv_bangluong.Rows.Count - 1,
329 LaySNTheoLoai(), chieuqua.tilehq()),
330 int.Parse(dgv_bangluong.Rows[i].Cells["phucapkhac"].Value.ToString()));
331 }
332 if (cboTo.Text != "")
333 {
334 //đưa dữ liệu vào datagirdview
335 HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString(), cboTo.SelectedValue.ToString());
336 }
337 else
338 {
339 //đưa dữ liệu vào datagirdview
340 HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString());
341 }
342 lamrong();
343 }
344 }
345 }
346
347 //
348 //các hàm tính lương
349 //
350
351 //hàm trả về mảng lấy tổng số người theo phân loại
352 private int[] LaySNTheoLoai()
353 {
354 string[] Loai = chieuqua.bangphanloai();
355 int[] SN = new int[Loai.Length];
356 for (int i = 0; i < dgv_bangluong.Rows.Count - 1; i++)
357 {
358 //DataGridViewRow r = dgv_bangluong.Rows[i];
359 for (int j = 0; j < Loai.Length; j++)
360 {
361 if (Loai[j] == dgv_bangluong.Rows[i].Cells["mahieuqua"].Value.ToString().Trim())
362 SN[j] += 1;
363 }
364 }
365 return SN;
366 }
367
368 // hàm tính tỉ lệ lương trung bình cho từng người trong phòng hoặc tổ
369 private double TileTB(double tileluong, int songuoi, int[] songuoitheopl, double[] TiLeHQ)
370 {
371 double TongTiLeLuongTheoLoai = 0;
372 double TongTiLeLuong = tileluong * songuoi;
373 for (int i = 0; i < songuoitheopl.Length; i++)
374 {
375 TongTiLeLuongTheoLoai += songuoitheopl[i] * TiLeHQ[i];
376 }
377 return TongTiLeLuong / TongTiLeLuongTheoLoai;
378 }
379
380 private void cbophanloai_SelectedIndexChanged(object sender, EventArgs e)
381 {
382
383 }
384
385 private void cmdin_Click(object sender, EventArgs e)
386 {
387 if (cboPhong.Text.Trim() == "")
388 {
389 MessageBox.Show("Bạn phải chọn phòng để in", "Thông báo");
390 }
391 else
392 {
393 //frmrptluongtheophong f = new frmrptluongtheophong();
394 //f.MdiParent = this.MdiParent;
395 //f.Show();
396 }
397 }
398
399 private void txtsongaycong_KeyPress(object sender, KeyPressEventArgs e)
400 {
401 if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
402 {
403 RadMessageBox.Show("\nChỉ được phép nhập số vào ô thông tin này !\n", "Thông báo", MessageBoxButtons.OK, RadMessageIcon.Exclamation);
404 e.Handled = true;
405 }
406 }
407
408
409
410
411
412
413 }
414 }
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Text;
7 using System.Windows.Forms;
8 using System.Data.SqlClient;
9 using Telerik.Data;
10 using Telerik.WinControls.UI;
11 using QuanLyNhanSu.Class;
12 using Telerik.WinControls;
13
14 namespace QuanLyNhanSu
15 {
16 public partial class frmbangluong : RadForm
17 {
18 //khai báo biến toàn cục
19 clsdmpb cPhong = new clsdmpb();
20 clsDMTo cTo = new clsDMTo();
21 clsbangluong cluong = new clsbangluong();
22 clshieuqua chieuqua = new clshieuqua();
23 clsTiLeLuong cTLL = new clsTiLeLuong();
24 string thangkt = frmkiemtrabangluong.thangkt;
25 string namkt = frmkiemtrabangluong.namkt;
26
27 public frmbangluong()
28 {
29 InitializeComponent();
30 cboPhong.DataSource = cPhong.taocombo();
31 cboPhong.DisplayMember = "tbl_PhongBan.TenPhong";
32 cboPhong.ValueMember = "tbl_PhongBan.MaPhong";
33 lblthang.Text = "Bảng Lương Tháng " + thangkt + " năm " + namkt;
34 }
35 //Hiển thị thông tin nhân viên vào list nhân viên
36 private void HienThiListNV(DataTable dt, ListView lv)
37 {
38 foreach (DataRow row in dt.Rows)
39 {
40 ListViewItem item = new ListViewItem();
41 item.Text = row["MaNV"].ToString();
42 item.SubItems.Add(row["Ho"].ToString());
43 item.SubItems.Add(row["Ten"].ToString());
44 lv.Items.Add(item);
45 }
46
47 }
48 //set list
49 private void setlist(bool b)
50 {
51 lstNhanvien.Enabled = b;
52 cboPhong.Enabled = b;
53 cboTo.Enabled = b;
54 }
55 //hiển thị thông tin nhân viên
56 private void HienThiTTNV(string ma)
57 {
58 cluong.laydl(thangkt, namkt, ma);
59 txtmanv.Text = cluong.ds.Tables["bangluong"].Rows[0]["MaNV"].ToString();
60 txtluongcb.Text = cluong.ds.Tables["bangluong"].Rows[0]["LuongCoBan"].ToString();
61 txtphucapcv.Text = cluong.ds.Tables["bangluong"].Rows[0]["PhuCapCV"].ToString();
62 txtsongaycong.Text = cluong.ds.Tables["bangluong"].Rows[0]["SoNgayLV"].ToString();
63 txtsongayphep.Text = cluong.ds.Tables["bangluong"].Rows[0]["SoNgayNghiPhep"].ToString();
64 txtot1.Text = cluong.ds.Tables["bangluong"].Rows[0]["SogioTangCa"].ToString();
65 txtot2.Text = cluong.ds.Tables["bangluong"].Rows[0]["SoGioTangCaCN"].ToString();
66 txtngayngungviec.Text = cluong.ds.Tables["bangluong"].Rows[0]["SoNgayNghiNgungViec"].ToString();
67 txtpcsinhhoatcc.Text = cluong.ds.Tables["bangluong"].Rows[0]["PCSinhHoatCC"].ToString();
68 txtthuclanh.Text = cluong.ds.Tables["bangluong"].Rows[0]["ThucLanh"].ToString();
69 txtpckhac.Text = cluong.ds.Tables["bangluong"].Rows[0]["PhuCapKhac"].ToString();
70 txttileccvasinhhoat.Text = cluong.ds.Tables["bangluong"].Rows[0]["TiLeCCvaSinhHoat"].ToString();
71 txtluongngaycong.Text = cluong.ds.Tables["bangluong"].Rows[0]["LuongLamViec"].ToString();
72 txtluongtangca.Text = cluong.ds.Tables["bangluong"].Rows[0]["LuongTangCa"].ToString();
73 txtbhxhvabhyt.Text = cluong.ds.Tables["bangluong"].Rows[0]["BHXHvaBHYT"].ToString();
74 //cbophanloai.SelectedItem = cluong.ds.Tables["bangluong"].Rows[0]["MaHieuQua"].ToString();
75 cbophanloai.DataSource = cluong.ds;
76 cbophanloai.DisplayMember = "bangluong.mahieuqua";
77 cbophanloai.ValueMember = "bangluong.mahieuqua";
78 }
79 //set control trong grpchamcong
80 private void setgrpchamcong(bool b)
81 {
82 foreach (Control c in grpchamcong.Controls)
83 {
84 if (c.Name.Contains("txt") == true || c.Name.Contains("cbo") == true)
85 {
86 c.Enabled = b;
87 }
88 }
89 }
90 //set nut
91 private void setcmd(bool b)
92 {
93 cmdluu.Enabled = !b;
94 cmdchamcong.Enabled = b;
95 }
96 //taocombophanloai
97 private void taocombo()
98 {
99 cbophanloai.DataSource = chieuqua.taocombo();
100 cbophanloai.DisplayMember = "hieuqua.MaHieuQua";
101 cbophanloai.ValueMember = "hieuqua.MaHieuQua";
102 if (txtmanv.Text != "") cbophanloai.Text = cluong.ds.Tables["bangluong"].Rows[0]["MaHieuQua"].ToString();
103
104 }
105 //hiển thị dữ liệu lên datagirdview
106 private void HienThiTTGird(string thang, string nam, string maphong, string mato)
107 {
108 dgv_bangluong.DataSource = cluong.laydlgird(thang, nam, maphong, mato);
109 dgv_bangluong.DataMember = "bangluong";
110 }
111 //hiển thi dữ liệu lên datagirdview không có tổ
112 private void HienThiTTGird(string thang, string nam, string maphong)
113 {
114 dgv_bangluong.DataSource = cluong.laydlgird(thang, nam, maphong);
115 dgv_bangluong.DataMember = "bangluong";
116 this.dgv_bangluong.Columns[0].IsVisible = false;
117 this.dgv_bangluong.Columns[1].IsVisible = false;
118 this.dgv_bangluong.Columns[2].HeaderText = "Mã nhân viên";
119 this.dgv_bangluong.Columns[3].HeaderText = "Họ";
120 this.dgv_bangluong.Columns[4].HeaderText = "Tên";
121 this.dgv_bangluong.Columns[5].HeaderText = "Mã phòng";
122 this.dgv_bangluong.Columns[6].HeaderText = "Mã tỗ";
123 this.dgv_bangluong.Columns[5].IsVisible = false;
124 this.dgv_bangluong.Columns[6].IsVisible = false;
125 this.dgv_bangluong.Columns[7].HeaderText = "Lương cơ bản";
126 this.dgv_bangluong.Columns[8].HeaderText = "Mã hiệu quả";
127 this.dgv_bangluong.Columns[9].HeaderText = "Tỷ lệ hiệu quả";
128 this.dgv_bangluong.Columns[10].HeaderText = "Số ngày công";
129 this.dgv_bangluong.Columns[11].HeaderText = "Số giờ tăng ca";
130 this.dgv_bangluong.Columns[12].HeaderText = "Số giờ tăng ca CN";
131 this.dgv_bangluong.Columns[13].HeaderText = "Số ngày nghỉ phép";
132 this.dgv_bangluong.Columns[14].HeaderText = "Số ngày nghỉ ngưng việc";
133 this.dgv_bangluong.Columns[15].HeaderText = "Tỷ lệ chuyên cần";
134 this.dgv_bangluong.Columns[16].HeaderText = "Lưong làm việc";
135 this.dgv_bangluong.Columns[17].HeaderText = "Lương tăng ca";
136 this.dgv_bangluong.Columns[18].HeaderText = "BHXH & BHYT";
137 this.dgv_bangluong.Columns[19].HeaderText = "Phụ cấp chức vụ";
138 this.dgv_bangluong.Columns[20].HeaderText = "Phụ cấp sinh hoạt";
139 this.dgv_bangluong.Columns[21].HeaderText = "Phụ cấp khác";
140 this.dgv_bangluong.Columns[22].HeaderText = "Thực lãnh";
141
142 for (int i = 0; i < this.dgv_bangluong.Columns.Count;i++ )
143 {
144 this.dgv_bangluong.Columns[i].BestFit();
145 }
146 }
147 //làm rổng các textbox và combobox trong các group
148 private void lamrong()
149 {
150 foreach (Control c in grpttnv.Controls)
151 {
152 if (c.Name.Contains("txt") == true)
153 {
154 c.Text = "";
155 }
156 }
157 foreach (Control c in grpchamcong.Controls)
158 {
159 if (c.Name.Contains("txt") == true || c.Name.Contains("cbo") == true)
160 {
161 c.Text = "";
162 }
163 }
164 foreach (Control c in grpbangluong.Controls)
165 {
166 if (c.Name.Contains("txt") == true)
167 {
168 c.Text = "";
169 }
170 }
171
172
173 }
174
175 private void frmbangluong_Load(object sender, EventArgs e)
176 {
177
178 }
179
180 private void cboPhong_SelectedIndexChanged(object sender, EventArgs e)
181 {
182 //maphongin = cboPhong.SelectedValue.ToString();
183 txtngaycongchuan.Text = "";
184 txttileluong.Text = "";
185 //Hiển thị dữ liệu nhân viên vào list
186 lstNhanvien.Items.Clear();
187 HienThiListNV(cPhong.laydlList(cboPhong.SelectedValue.ToString(), thangkt, namkt), lstNhanvien);
188 //lấy dữ liệu vào gird
189 HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString());
190 //lấy dữ liệu ngày công chuẩn và tỉ lệ lương của phòng
191 try
192 {
193 cTLL.laydl(thangkt, namkt, cboPhong.SelectedValue.ToString(), "");
194 txtngaycongchuan.Text = cTLL.ds1.Tables["TiLeLuong"].Rows[0]["SoNgayCongThang"].ToString();
195 txttileluong.Text = cTLL.ds1.Tables["TiLeLuong"].Rows[0]["TiLeLuong"].ToString();
196 }
197 catch { }
198 //tạo combobox to
199 cboTo.DataSource = cTo.taocombo(cboPhong.SelectedValue.ToString());
200 cboTo.DisplayMember = "DanhMucTo.TenTo";
201 cboTo.ValueMember = "DanhMucTo.MaTo";
202 cboTo.Text = "";
203 //làm rổng các textbox
204 lamrong();
205
206 }
207
208 private void cboTo_SelectedIndexChanged(object sender, EventArgs e)
209 {
210
211 }
212
213 private void lstNhanvien_SelectedIndexChanged(object sender, EventArgs e)
214 {
215 string ma = lstNhanvien.FocusedItem.SubItems[0].Text;
216 string ho = lstNhanvien.FocusedItem.SubItems[1].Text;
217 string ten = lstNhanvien.FocusedItem.SubItems[2].Text;
218 txthoten.Text = ho + " " + ten;
219 HienThiTTNV(ma);
220 }
221 //
222 //bột nút của bảng lương
223 //
224 private void cmdchamcong_Click(object sender, EventArgs e)
225 {
226 if (txtmanv.Text == "")
227 {
228 MessageBox.Show("Bạn phải chọn nhân viên chấm công", "Thông Báo");
229 }
230 else
231 {
232 this.cmdtinhluong.Enabled = false;
233 setlist(false);
234 setgrpchamcong(true);
235 grpchamcong.Enabled = true;
236 setcmd(false);
237 taocombo();
238 cbophanloai.Focus();
239 }
240 }
241
242 private void cmdluu_Click(object sender, EventArgs e)
243 {
244 if (Int32.Parse(this.txtsongaycong.Text.Trim()) >= 0 &&
245 Int32.Parse(this.txtsongaycong.Text.Trim()) <= 31 &&
246 Int32.Parse(this.txtsongayphep.Text.Trim()) >= 0 &&
247 Int32.Parse(this.txtsongayphep.Text.Trim()) <= 31 &&
248 Int32.Parse(this.txtngayngungviec.Text.Trim()) >= 0 &&
249 Int32.Parse(this.txtngayngungviec.Text.Trim()) <= 31
250 )
251 {
252 cluong.chamcong(thangkt, namkt, txtmanv.Text.Trim(),
253 cbophanloai.SelectedValue.ToString(),
254 txtsongaycong.Text.Trim() != "" ? int.Parse(txtsongaycong.Text.Trim()) : 0,
255 txtot1.Text.Trim() != "" ? int.Parse(txtot1.Text.Trim()) : 0,
256 txtot2.Text.Trim() != "" ? int.Parse(txtot2.Text.Trim()) : 0,
257 txtsongayphep.Text.Trim() != "" ? int.Parse(txtsongayphep.Text.Trim()) : 0,
258 txtngayngungviec.Text.Trim() != "" ? int.Parse(txtngayngungviec.Text.Trim()) : 0,
259 txttileccvasinhhoat.Text.Trim() != "" ? double.Parse(txttileccvasinhhoat.Text.Trim()) : 0,
260 txtpckhac.Text.Trim() != "" ? int.Parse(txtpckhac.Text.Trim()) : 0);
261 setlist(true);
262 setgrpchamcong(false);
263 grpchamcong.Enabled = false;
264 setcmd(true);
265 HienThiTTNV(txtmanv.Text.Trim());
266 if (cboTo.Text != "")
267 {
268 //đưa dữ liệu vào datagirdview
269 HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString(), cboTo.SelectedValue.ToString());
270 this.cmdtinhluong.Enabled = true;
271 }
272 else
273 {
274 //đưa dữ liệu vào datagirdview
275 HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString());
276 this.cmdtinhluong.Enabled = true;
277 }
278 }
279 else
280 {
281 RadMessageBox.Show("\nThông tin ngày phải lớn hơn hoặc bằng 0 và và nhỏ hơn hoặc bằng 31 !\n","Thông báo",MessageBoxButtons.OK,RadMessageIcon.Exclamation);
282 }
283 }
284
285 private void cmdtinhluong_Click(object sender, EventArgs e)
286 {
287 if ((txtngaycongchuan.Text == "") || (txttileluong.Text == ""))
288 {
289 DialogResult rs = RadMessageBox.Show("\nBạn chưa nhập số ngày làm việc trong tháng và tỉ lệ lương.\nMở Form Tỉ lệ lương để nhập vào ?\n", "Thông báo", MessageBoxButtons.YesNo,RadMessageIcon.Question);
290 if (rs == DialogResult.Yes)
291 {
292 frmbangtileluong f = new frmbangtileluong();
293 f.MdiParent = this.MdiParent;
294 f.Show();
295 this.Close();
296 }
297 }
298
299 else
300 {
301 //kiểm tra chấm công hết chưa
302 bool bchamcong = false;
303 for (int i = 0; i < dgv_bangluong.Rows.Count - 1; i++)
304 {
305 //DataGridViewRow dgvrow = dgv_bangluong.Rows[i];
306 if (dgv_bangluong.Rows[i].Cells["mahieuqua"].Value.ToString() == "")
307 bchamcong = true;
308 }
309 if (bchamcong)
310 RadMessageBox.Show("\nChưa chấm công xong !\n", "Thông Báo");
311 else
312 //tính lương
313 {
314 for (int i = 0; i < dgv_bangluong.Rows.Count - 1; i++)
315 {
316 cluong.tinhluong(thangkt, namkt, dgv_bangluong.Rows[i].Cells["manv"].Value.ToString(),
317 int.Parse(dgv_bangluong.Rows[i].Cells["luongcoban"].Value.ToString()),
318 double.Parse(dgv_bangluong.Rows[i].Cells["tilehq"].Value.ToString()),
319 int.Parse(dgv_bangluong.Rows[i].Cells["songaylv"].Value.ToString()),
320 int.Parse(dgv_bangluong.Rows[i].Cells["sogiotangca"].Value.ToString()),
321 int.Parse(dgv_bangluong.Rows[i].Cells["sogiotangcacn"].Value.ToString()),
322 int.Parse(dgv_bangluong.Rows[i].Cells["songaynghiphep"].Value.ToString()),
323 int.Parse(dgv_bangluong.Rows[i].Cells["songaynghingungviec"].Value.ToString()),
324 double.Parse(dgv_bangluong.Rows[i].Cells["tileccvasinhhoat"].Value.ToString()),
325 int.Parse(dgv_bangluong.Rows[i].Cells["phucapcv"].Value.ToString()),
326 int.Parse(txtngaycongchuan.Text.Trim()),
327 TileTB(double.Parse(txttileluong.Text.Trim()),
328 dgv_bangluong.Rows.Count - 1,
329 LaySNTheoLoai(), chieuqua.tilehq()),
330 int.Parse(dgv_bangluong.Rows[i].Cells["phucapkhac"].Value.ToString()));
331 }
332 if (cboTo.Text != "")
333 {
334 //đưa dữ liệu vào datagirdview
335 HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString(), cboTo.SelectedValue.ToString());
336 }
337 else
338 {
339 //đưa dữ liệu vào datagirdview
340 HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString());
341 }
342 lamrong();
343 }
344 }
345 }
346
347 //
348 //các hàm tính lương
349 //
350
351 //hàm trả về mảng lấy tổng số người theo phân loại
352 private int[] LaySNTheoLoai()
353 {
354 string[] Loai = chieuqua.bangphanloai();
355 int[] SN = new int[Loai.Length];
356 for (int i = 0; i < dgv_bangluong.Rows.Count - 1; i++)
357 {
358 //DataGridViewRow r = dgv_bangluong.Rows[i];
359 for (int j = 0; j < Loai.Length; j++)
360 {
361 if (Loai[j] == dgv_bangluong.Rows[i].Cells["mahieuqua"].Value.ToString().Trim())
362 SN[j] += 1;
363 }
364 }
365 return SN;
366 }
367
368 // hàm tính tỉ lệ lương trung bình cho từng người trong phòng hoặc tổ
369 private double TileTB(double tileluong, int songuoi, int[] songuoitheopl, double[] TiLeHQ)
370 {
371 double TongTiLeLuongTheoLoai = 0;
372 double TongTiLeLuong = tileluong * songuoi;
373 for (int i = 0; i < songuoitheopl.Length; i++)
374 {
375 TongTiLeLuongTheoLoai += songuoitheopl[i] * TiLeHQ[i];
376 }
377 return TongTiLeLuong / TongTiLeLuongTheoLoai;
378 }
379
380 private void cbophanloai_SelectedIndexChanged(object sender, EventArgs e)
381 {
382
383 }
384
385 private void cmdin_Click(object sender, EventArgs e)
386 {
387 if (cboPhong.Text.Trim() == "")
388 {
389 MessageBox.Show("Bạn phải chọn phòng để in", "Thông báo");
390 }
391 else
392 {
393 //frmrptluongtheophong f = new frmrptluongtheophong();
394 //f.MdiParent = this.MdiParent;
395 //f.Show();
396 }
397 }
398
399 private void txtsongaycong_KeyPress(object sender, KeyPressEventArgs e)
400 {
401 if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
402 {
403 RadMessageBox.Show("\nChỉ được phép nhập số vào ô thông tin này !\n", "Thông báo", MessageBoxButtons.OK, RadMessageIcon.Exclamation);
404 e.Handled = true;
405 }
406 }
407
408
409
410
411
412
413 }
414 }